/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import java.sql.SQLException;
import java.util.LinkedList;
import model.dto.MatrizDTO;
import model.exception.MissingIdException;
import model.exception.NoChangesOnUpdateException;
import model.exception.NotNullFieldsException;
import model.handler.MatrizHandler;

/**
 *
 * @author Gabriel
 */
public class MatrizController {
    
    MatrizHandler matrizHandler;

    public MatrizController() throws SQLException, ClassNotFoundException {
        matrizHandler = new MatrizHandler();
    }

    /**
     * Pesquisa uma matriz pelos parâmetros indicados. Pode ser indicado um ou mais parâmetros.
     * @param Id Id da Matriz
     * @param nomeEspecie Nome da Espécie (Científico ou vulgar)
     * @param endereco Endereço da Matriz
     * @param cidade Cidade da Matriz
     * @param estado Estado da Matriz
     * @param bairro Bairro da Matriz
     * @return Retorna lista com resultados encontrados
     * @throws SQLException
     */
    public LinkedList<MatrizDTO> pesquisaMatriz(Integer Id,
                                             String nomeEspecie,
                                             String endereco,
                                             String cidade,
                                             String estado,
                                             String bairro) throws SQLException {
        return matrizHandler.pesquisaMatriz(Id,nomeEspecie,endereco,cidade,estado,bairro);

    }
    
    public void cadastraMatriz(MatrizDTO matrizDTO) throws SQLException, NotNullFieldsException {
        matrizHandler.cadastraMatriz(matrizDTO);
    }
    
    public void atualizaMatriz(MatrizDTO matrizDTO,
                               boolean atualizaLocal, 
                               boolean atualizaEspecie,
                               boolean atualizaFlgArvoreConjunto) throws MissingIdException, NoChangesOnUpdateException, SQLException, NotNullFieldsException {
        matrizHandler.atualizaMatriz(matrizDTO, atualizaLocal, atualizaEspecie, atualizaFlgArvoreConjunto);
    }
    
}
